114127cf507a8f5e12e0e93476bf90ecd996ad90,java/java-psi-impl/src/com/intellij/psi/impl/PsiSuperMethodImplUtil.java,PsiSuperMethodImplUtil,isSuperMethod,#PsiClass#HierarchicalMethodSignature#HierarchicalMethodSignature#,263

Before Change


    PsiClass containingClass = hierarchicalMethodSignature.getMethod().getContainingClass();
    return !superMethod.isConstructor()
           && !aClass.equals(superClass)
           && PsiUtil.isAccessible(superMethod, aClass, aClass)
           && MethodSignatureUtil.isSubsignature(superSignatureHierarchical, hierarchicalMethodSignature)
           && superClass != null
           && (containingClass != null && containingClass.isInterface() == superClass.isInterface() || superClass.isInterface() || "java.lang.Object".equals(superClass.getQualifiedName()))
      ;

After Change


    PsiClass containingClass = hierarchicalMethodSignature.getMethod().getContainingClass();
    if (!superMethod.isConstructor()) {
      if (!aClass.equals(superClass)) {
        if (PsiUtil.isAccessible(superMethod, aClass, aClass)) {
          if (MethodSignatureUtil.isSubsignature(superSignatureHierarchical, hierarchicalMethodSignature)) {
            if (superClass != null) {
              if (superClass.isInterface() ||
                  "java.lang.Object".equals(superClass.getQualifiedName())) {
                return true;
              }

              if (containingClass != null) {
                if (!containingClass.isInterface()) {
                  return true;
                }

                if (!aClass.isInterface() && !InheritanceUtil.isInheritorOrSelf(superClass, containingClass, true)) {
                  return true;
                }
              }
            }